<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>Document</title>
	</head>
	<body>
		<script>
			function inheritObject(obj) {
				function Temp() {}
				Temp.prototype = obj
				return new Temp()
			}
			let books = {
				name: 'js books',
				book: ['JavaScript设计模式', '红宝书'],
				getBooks() {
					console.log(this.book)
				},
			}
			let newBooks1 = inheritObject(books)
			newBooks1.book.push('小黄书')
			newBooks1.getBooks()
			let newBooks2 = inheritObject(books)
			console.log('newBooks2', newBooks2)
			newBooks2.getBooks()

			/*
        这种继承实际上就是对 类式继承的一个封装
        好处在于 这种 Temp 临时类的构造函数中是无内容的，所以开销是比较小的，使用起来也是非常之方便！
        缺点就是类继承的经典问题了， 容易在不知情的情况下被污染

        更方便的是使用 Object.create() 的方式来创建一个对象 
      */
		</script>
	</body>
</html>
